const ejs = require("ejs");
const fs = require("fs");
const path = require("path")
const html = "<div><%= user.name %>></div>"
const option = {};
const data = {
    user: {
        name: "xinxin"
    }
};

const template = ejs.compile(html, option);
const templateCompile = template(data);
// console.log(templateCompile);

const renderTemplate = ejs.render(html, data, option)
// console.log("renderTemplate", renderTemplate);

// promise
const renderFile = ejs.renderFile(path.resolve(__dirname, "./template.html"), data, option)
// renderFile.then(file => console.log("readFile Promise", file))

const renderFileData = {
    user: {
        name: "xinxin",
        temp: "<div>aaa</div>",
        copyRight: "<div>copyRight</div>"
    },
};

const callbackOptions = {
    // delimiter: "?", // 修改原本的%替换为定制的？
};

// 在每一次加载ejs所有文件都会执行fileLoader  包括文件内include文件亦会执行
ejs.fileLoader = function(filePath) {
    const content = fs.readFileSync(filePath).toString();
    // return `title ${content} after`;
    return `<div style="color:red;"><%= user.copyRight %></div> ${content}`
}
ejs.renderFile(path.resolve(__dirname, "./template.html"), renderFileData, callbackOptions, (err, file) => {
    console.log("renderFile callback");
    console.log(file);
})

/**
 * 
 * ejs语法
 * <% 脚本
 * <%_ 删除其前边的空格
 * <%= 输出数据到模板
 * <%- 输出非转义内容到模板
 * <%# 注释  不输出不执行内容
 * <%% 输出字符串‘<%’
 * %> 一般结束标签
 * _%> 删除标签后边的空格
 * -%> 删除标签后边紧随的换行符
 */
